home *** CD-ROM | disk | FTP | other *** search
- 10 ! ************************************************
- 20 ! Example: PUSHBUTTON Widget
- 30 !
- 40 ! This program generates a PUSHBUTTON widget with
- 50 ! three states. Each time the button is pressed, the
- 60 ! display cycles through Label ONE, Label TWO, and
- 70 ! Label THREE, and the associated state (0, 1, or 2).
- 80 ! is displayed.
- 90 !
- 100 ! ************************************************
- 110 !
- 120 DIM L$(1:3)[50]
- 130 INTEGER D(1:4),Dw,Dh,Bh,Bw,Bx,By,N
- 140 DATA "Label ONE","Label TWO","Label THREE"
- 150 READ L$(*)
- 160 !
- 170 GESCAPE CRT,3;D(*)
- 180 Dw=D(3)-D(1)
- 190 Dh=(D(4)-D(2))
- 200 Bw=128
- 210 Bh=Bw/2
- 220 Bx=(Dw-Bw)/2
- 230 By=(Dh-Bh)/2
- 240 !
- 250 ASSIGN @Btn TO WIDGET "PUSHBUTTON"
- 260 CONTROL @Btn;SET ("TITLE":" Example: PUSHBUTTON Widget")
- 270 CONTROL @Btn;SET ("SYSTEM MENU":"Quit")
- 280 CONTROL @Btn;SET ("X":Bx/2,"Y":By/2,"WIDTH":2.25*Bw,"HEIGHT":Bh)
- 290 CONTROL @Btn;SET ("LABELS":L$(*),"STATES":3)
- 300 !
- 310 ON EVENT @Btn,"ACTIVATED" GOSUB Handler
- 320 ON EVENT @Btn,"SYSTEM MENU" GOTO Finis
- 330 !
- 340 LOOP
- 350 WAIT FOR EVENT
- 360 END LOOP
- 370 STOP
- 380 !
- 390 Handler:!
- 400 STATUS @Btn;RETURN ("STATE":N)
- 410 DISP "State = "&VAL$(N)
- 420 RETURN
- 430 !
- 440 Finis:!
- 450 ASSIGN @Btn TO *! Delete PUSHBUTTON widget
- 460 END
-